package com.jy.wms.dao;


import com.jy.wms.common.base.BaseDao;
import com.jy.wms.pojo.SysDictionary;
import com.jy.wms.pojo.WmsGoods;
import com.jy.wms.pojo.WmsLibrarypositiongroup;
import com.jy.wms.pojo.WmsOwner;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @ClassName: WmsGoodsMapper.java
 * @Description: TODO(这里用一句话描述这个类的作用)
 * @Author JaneLiu
 * @Date Wed Sep 06 17:06:56 CST 2017
 */
public interface WmsGoodsMapper extends BaseDao<WmsGoods> {

    /**
     * 插入一条记录
     * @param entity 实体对象
     * @return int
     */
    public Integer baseInsert(@Param("WmsGoods") WmsGoods entity);

    /**
     * 插入一条记录（匹配有值的字段）
     * @param entity 实体对象
     * @return int
     */
    public Integer baseInsertSelective(@Param("WmsGoods") WmsGoods entity);

    /**
     * 删除（根据主键ID删除）
     * @param id 主键
     * @return int
     */
    public Integer baseDeleteByPrimaryKey(@Param("id") String id);

    /**
     * 删除（根据ID 批量删除）
     * @param idList 主键ID列表
     * @return int
     */
    public Integer baseDeleteBathPrimaryKeys(@Param("list") List<String> idList);


    /**
     * 分页查询
     * @param entity 实体
     * @return List<WmsGoods>
     */
    public List<WmsGoods>  baseSelectPage(@Param("WmsGoods") WmsGoods entity);

    /**
     * 查询（根据主键ID查询）
     * @param id 主键ID
     * @return User
     */
    public WmsGoods  baseSelectByPrimaryKey(@Param("id") String id);
    /**
     * 查询（根据主键ID查询货品编辑内容）
     * @param id 主键ID
     * @return User
     */
    public WmsGoods  baseSelectByGoodsEdit(@Param("id") String id);

    /**
     * 查询（根据货主ID查询货主对应的货品）
     * @param sshzid 货主ID
     * @return User
     */
    public List<WmsGoods>  baseSelectGoodsBySshzid(@Param("sshzid") String sshzid,@Param("hpid") String hpid,@Param("bh") String bh);
    /**
     * 查询（根据ID 批量查询）
     * @param idList 主键ID列表
     * @return list
     */
    public Integer baseSelectBathPrimaryKeys(@Param("list") List<WmsGoods> idList);

    /**
     *修改 （匹配有值的字段）
     * @param entity 主键ID列表
     * @return int
     */
    public Integer baseUpdateByPrimaryKeySelective(@Param("WmsGoods") WmsGoods entity);

    /**
     *修改（根据主键ID修改）
     * @param entity 主键ID列表
     * @return int
     */
    public Integer baseUpdateByPrimaryKey(@Param("WmsGoods") WmsGoods entity);



    /**
     *货品编号查重 （匹配有值的字段）
     * @param bh 货品编号
     * @return
     */
    public Integer baseSelectGoodsBh(@Param("bh") String bh,@Param("id") String id);
    /**
     *货品编号最大值 （匹配有值的字段）
     * @return
     */
    public String baseSelectGoodsBhMax();
    /**
     *查询（根据货品ID查询保质期）
     * @param id 货品id
     * @return
     */
    public String seachGoodsBzqById(@Param("id") String id);
    /**
     *查询未被货品占用的库位组
     * @param ckid 仓库ID
     * @param sshzid 所属货主ID
     * @return
     */
    public List<WmsLibrarypositiongroup> seachLibrarypositiongroup(@Param("sshzid") String sshzid,@Param("ckid") String ckid,@Param("mc") String mc);
    /**
     *查询库位组信息 根据库位组Id
     * @param id 库位组ID
     * @return
     */
    public WmsLibrarypositiongroup selectByGroupId(@Param("id") String id);
    /**
     *查询货主信息 _Jane
     * @param id 货主Id
     * @return
     */
    public WmsOwner seachOwnerXx(@Param("id") String id, @Param("ckid") String ckid);
    /**
     *查询库位类型信息 _Jane
     * @param lx 包装类型
     * @return
     */
    public List<SysDictionary> seachKwlx(@Param("lx") String lx);
    /**
     * 查询库位名称
     */
    public String selectKwmcByKwid(@Param("kwid") String kwid);
}
